home *** CD-ROM | disk | FTP | other *** search
/ Plug-In Power Pack for Netscape Communicator / Plug-In Power Pack for Netscape Communicator.iso / plugins / dataviews / include / vnsetup.h < prev    next >
Text File  |  1997-05-08  |  4KB  |  107 lines

  1. /*
  2. |    file name -- VNsetup.h
  3. |===================================================================
  4. |
  5. |        Copyright (C) 1986, 1987 V. I. Corporation
  6. |
  7. |    VNsetup - Info for interaction handlers.
  8. |
  9. |    alan c morse    15 jan 87
  10. |    alan c morse    14 apr 87    Remove DRAW_INFO
  11. |    Earl Billingsley 05 mar 88    Change Erase to Cleanup
  12. |    mike krasnik    23 apr 91       Added ContextRedraw
  13. |    mike krasnik     5 may 91       Added a separate macro for
  14. |                                       widgets: TakeInput= NULL.
  15. |
  16. |===================================================================
  17. |
  18. |    Module description/function:
  19. |    This contains data structures for Interaction Handlers.
  20. |
  21. |====================================================================
  22. */
  23.  
  24. /* Values for indices into Interaction Handler's jump table */
  25. # define IH_SETUP_FOR_DRAW      0
  26. # define IH_CONTEXT_DRAW        1
  27. # define IH_ECHO_DRAW           2
  28. # define IH_TAKE_INPUT          3
  29. # define IH_TAKE_DATA           4
  30. # define IH_DATA_RESET          5
  31. # define IH_USER_ECHO            6
  32. # define IH_CLEANUP_GRAPHICS    7
  33. # define IH_CLEANUP_DATA    8
  34.  
  35. # define V_IHTABLE_SIZE        9
  36.  
  37. /*
  38. set up Interaction handler jump tables (different on different hosts)
  39. */
  40.  
  41. #define def_init_table(TableName,VNname,VNTname) \
  42. LOCAL VOID ContextDraw(), EchoDraw(), TakeData(), \
  43. DataReset(), UserEcho(), CleanupGraphics(), CleanupData(); \
  44. LOCAL int SetupForDraw(), TakeInput(); \
  45. LOCAL ENTRY_PT TableName[V_IHTABLE_SIZE]; \
  46. ENTRY_PT *VNTname( Table ) \
  47.       ENTRY_PT *Table; \
  48.    { \
  49.      if( Table == (ENTRY_PT*)0 ) \
  50.         Table = TableName; \
  51.         Table[IH_SETUP_FOR_DRAW]   = (ENTRY_PT)SetupForDraw; \
  52.         Table[IH_CONTEXT_DRAW]     = (ENTRY_PT)ContextDraw; \
  53.         Table[IH_ECHO_DRAW]        = (ENTRY_PT)EchoDraw; \
  54.         Table[IH_TAKE_INPUT]       = (ENTRY_PT)TakeInput; \
  55.         Table[IH_TAKE_DATA]        = (ENTRY_PT)TakeData; \
  56.         Table[IH_DATA_RESET]       = (ENTRY_PT)DataReset; \
  57.         Table[IH_USER_ECHO]        = (ENTRY_PT)UserEcho; \
  58.         Table[IH_CLEANUP_GRAPHICS] = (ENTRY_PT)CleanupGraphics; \
  59.         Table[IH_CLEANUP_DATA]     = (ENTRY_PT)CleanupData; \
  60.     return Table; \
  61.      } \
  62. GLOBALREF ENTRY_PT *(*VNname)()
  63.  
  64. #define def_entry_table(TableName,VNname,VNTname) \
  65.   def_init_table(TableName,VNname,VNTname); \
  66. GLOBALDEF ENTRY_PT *(*VNname)() = VNTname
  67.   
  68. /*
  69.  | Used for widgets: No TakeInput.
  70.  */
  71. #define def_widget_init_table(TableName,VNname,VNTname) \
  72. LOCAL VOID ContextDraw(), EchoDraw(), TakeData(), \
  73. DataReset(), UserEcho(), CleanupGraphics(), CleanupData(); \
  74. LOCAL int SetupForDraw(), TakeInput(); \
  75. LOCAL ENTRY_PT TableName[V_IHTABLE_SIZE]; \
  76. ENTRY_PT *VNTname( Table ) \
  77.         ENTRY_PT *Table; \
  78.         { \
  79.         if( Table == (ENTRY_PT*)0 ) \
  80.           Table = TableName; \
  81.         Table[IH_SETUP_FOR_DRAW]   = (ENTRY_PT)SetupForDraw; \
  82.         Table[IH_CONTEXT_DRAW]     = (ENTRY_PT)ContextDraw; \
  83.         Table[IH_ECHO_DRAW]        = (ENTRY_PT)EchoDraw; \
  84.         Table[IH_TAKE_INPUT]       = (ENTRY_PT)NULL; \
  85.         Table[IH_TAKE_DATA]        = (ENTRY_PT)TakeData; \
  86.         Table[IH_DATA_RESET]       = (ENTRY_PT)DataReset; \
  87.         Table[IH_USER_ECHO]        = (ENTRY_PT)UserEcho; \
  88.         Table[IH_CLEANUP_GRAPHICS] = (ENTRY_PT)CleanupGraphics; \
  89.         Table[IH_CLEANUP_DATA]     = (ENTRY_PT)CleanupData; \
  90.     return Table; \
  91.     } \
  92. GLOBALREF ENTRY_PT *(*VNname)()
  93.  
  94.  
  95. #define def_widget_entry_table(TableName,VNname,VNTname) \
  96.   def_widget_init_table(TableName,VNname,VNTname) \
  97. GLOBALDEF ENTRY_PT *(*VNname)() = VNTname
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.